// Car类  
class Car(val licensePlate: String, val brand: String, val color: String, val price: Double) {  
  // 驾驶方法  
  def drive(): Unit = {  
    println(s"驾驶${brand}汽车，车牌号：${licensePlate}")  
  }  
  
  // 停车方法  
  def park(): Unit = {  
    println(s"停车${brand}汽车，车牌号：${licensePlate}")  
  }  
  
  // 加油方法  
  def refuel(): Unit = {  
    println(s"给${brand}汽车加油，车牌号：${licensePlate}")  
  }  
}  
  // ElectricCar类继承自Car类    
class ElectricCar(licensePlate: String, brand: String, color: String, price: Double,    
                   val batteryCapacity: Double, var rangePerCharge: Int) // 注意这里将rangePerCharge改为var  
  extends Car(licensePlate, brand, color, price) {    
      
  // 充电方法    
  def charge(): Unit = {    
    println(s"给${brand}电动汽车充电，电池容量：${batteryCapacity}kWh")    
    // 假设充电后充满电，这里设置rangePerCharge为某个固定值或根据batteryCapacity计算的值  
    rangePerCharge = 400 // 假设充电后续航里程恢复为400公里  
  }    
    
  // 重写drive方法，检查续航里程    
  override def drive(): Unit = {    
    if (rangePerCharge > 0) {    
      super.drive() // 调用父类的drive方法    
      println(s"电动汽车行驶中，当前续航里程：${rangePerCharge}公里")    
    } else {    
      println(s"电动汽车电量不足，无法驾驶！")    
    }    
  }    
}
  // 使用示例
object CarDemo {  
  def main(args: Array[String]): Unit = {
    // 创建普通汽车对象  
    val regularCar = new Car("粤B12345", "丰田", "蓝色", 200000.0)  
    regularCar.drive()  
    regularCar.park()  
    regularCar.refuel() 
    // 创建电动汽车对象
    val electricCar = new ElectricCar("沪A56789", "特斯拉", "红色", 400000.0, 100.0, 400)
    electricCar.drive() // 续航里程足够，可以驾驶
    electricCar.charge() // 充电
    electricCar.rangePerCharge = 0 // 现在可以安全地设置rangePerCharge为0来模拟电量耗尽
    electricCar.drive() // 续航里程不足，无法驾驶
  }
}
